package com.wson.controller.compass.util;

import java.util.List;

import com.wson.behavior.ctrl.IBehavior;
import com.wson.controller.util.AbstractControllerUtil;
import com.wson.model.basic.IBasicView;
import com.wson.widget.render.IRender;
import com.wson.widget.render.compass.framework.AppFrontRender;
import com.wson.widget.render.compass.framework.AppWorkCenterRender;
import com.wson.widget.render.compass.framework.CodiskAccountRender;
import com.wson.widget.render.compass.framework.CodiskProvidersCenterRender;
import com.wson.widget.render.compass.framework.ConfirmFlowCloseRender;
import com.wson.widget.render.compass.framework.DocumentsRender;
import com.wson.widget.render.compass.framework.FeedsRender;
import com.wson.widget.render.compass.framework.StatusFlowRender;


public abstract class AbstractAppControllerUtil extends AbstractControllerUtil {

	@SuppressWarnings("unchecked")
	public static AbstractAppControllerUtil getCurrentUtil(){
		return (AbstractAppControllerUtil)util;
	}

	@Override
	protected List<String> generateControllerActions() {
		List<String> actions = super.generateControllerActions();
		
		return actions;
	}


	@Override
	protected List<Class<? extends IBehavior>> generateExternalBahaviors() {
		List<Class<? extends IBehavior>> behaviors = super.generateExternalBahaviors();
		
		return behaviors;
	}

	@Override
	protected List<Class<? extends IBasicView>> generateExternalModels() {
		List<Class<? extends IBasicView>> models = super.generateExternalModels();
		
		models.addAll(com.wson.model.compass.factory.ModelFactory.getLocalModels());
		models.addAll(com.wson.model.clouddisk.factory.ModelFactory.getLocalModels());
		models.addAll(com.wson.model.wolfow.factory.ModelFactory.getLocalModels());
		//models.add(com.wson.model.wolfow.event.impl.WolfEventModel.class);
		//models.add(com.wson.model.wolfow.step.impl.WolfStepModel.class);
		//models.add(com.wson.model.wolfow.route.impl.WolfRouteModel.class);//Replaced
		//models.add(com.wson.model.wolfow.flow.impl.WolfFlowModel.class);
		//models.addAll(com.wson.model.compass.factory.ModelFactory.getLocalModels());
		return models;
	}

	@Override
	protected List<Class<? extends IRender>> generateExternalRenders() {
		List<Class<? extends IRender>> renders = super.generateExternalRenders();
		renders.add(AppFrontRender.class);
		renders.add(AppWorkCenterRender.class);
		renders.add(FeedsRender.class);
		renders.add(StatusFlowRender.class);
		renders.add(ConfirmFlowCloseRender.class);
		renders.add(CodiskProvidersCenterRender.class);
		renders.add(DocumentsRender.class);
		renders.add(CodiskAccountRender.class);
		return renders;
	}


}
